# 定义源文件目录和目标文件目录
SRC_DIR = src
OBJ_DIR = bin

# 定义编译器和编译选项
CXX = g++
CXXFLAGS = -g -Wall -I include/

# 定义链接选项
LDFLAGS = -lcurl -lm -lredis++ -pthread -llog4cpp 

# 定义所有源文件和目标文件
SRCS = $(wildcard $(SRC_DIR)/*.cc)
OBJS = $(patsubst $(SRC_DIR)/%.cc, $(OBJ_DIR)/%.o, $(SRCS))

# 定义可执行文件
TARGET = Reactor.exe

# 默认目标
all: $(TARGET)

# 链接目标文件生成可执行文件
$(TARGET): $(OBJS)
	$(CXX) $(OBJS) -o $@ $(LDFLAGS)

# 自动规则，编译源文件为目标文件
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cc
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 清理生成的文件
clean:
	rm -rf $(OBJ_DIR)/*.o $(TARGET)